package ar.edu.unq.tpi.labso.rochi.agendaRochi.Wicket.apliccion;

import java.util.LinkedList;
import java.util.List;

import clasesPrincipales.Evento;


public class BuscaEntreFechas {
	
	
	public static List<Evento> search(List<Evento> lalista, AproximandoAlEvento example) {
		List<Evento> lista = new LinkedList<Evento>();
		for (Evento ev : lalista) {
			if ( BuscaEntreFechas.satisface(ev, example) ) {
				lista.add(ev);
			}
		}
		return lista;
	}
	
	private static boolean satisface(Evento e, AproximandoAlEvento example) {
		boolean toReturn = true;
			if (example.getTiempo() != null) {
				if (e.getFechaInicio() != null && e.getFechaFin()!=null) {
					toReturn = toReturn && 
					( example.getTiempo().after(e.getFechaInicio()) ) &&
					( example.getTiempo().before(e.getFechaFin()) ) ||
					(example.getTiempo().getTime() == e.getFechaInicio().getTime()) ||
					(example.getTiempo().getTime() == e.getFechaFin().getTime());
				}
				else { return false; }
			}
			if (example.getDescripcion() != null) {
				if (e.getDescripcion() != null) {
					toReturn = toReturn && e.getDescripcion().contains(example.getDescripcion()); }
				else { return false; }
			}
			if (example.getImportante() != null) {
				if (e.getEsImportante() != null) {
					toReturn = toReturn && e.getEsImportante().equals(example.getImportante()); }
				else { return false; }
			}
		return toReturn;
	}
}
